 // 字符串转byte
export const stringToBytes=(str)=>{
  var array = new Uint8Array(str.length);
  for (var i = 0, l = str.length; i < l; i++) {
    array[i] = str.charCodeAt(i);
  }
  console.log(array);
  return array.buffer;
}
//byte转字符串
export const ab2hex=(buffer)=>{
  var hexArr =Array.prototype.map.call(
    new Uint16Array(buffer),
    function(bit){
      return ('00'+bit.toString(16).slice(-2))
    }
  )
  return hexArr.join('');
}
// 当前时间封装
export const getNowTime=()=> {
  // 加0
  function add_10(num) {
    if (num < 10) {
      num = '0' + num
    }
    return num;
  }
  var myDate = new Date();
  myDate.getYear(); //获取当前年份(2位)
  myDate.getFullYear(); //获取完整的年份(4位,1970-????)
  myDate.getMonth(); //获取当前月份(0-11,0代表1月)
  myDate.getDate(); //获取当前日(1-31)
  myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
  myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
  myDate.getHours(); //获取当前小时数(0-23)
  myDate.getMinutes(); //获取当前分钟数(0-59)
  myDate.getSeconds(); //获取当前秒数(0-59)
  myDate.getMilliseconds(); //获取当前毫秒数(0-999)
  myDate.toLocaleDateString(); //获取当前日期
  var nowTime = add_10(myDate.getHours()) + '时' + add_10(myDate.getMinutes()) + '分' + add_10(myDate.getSeconds()) + '秒';
  return nowTime;
}
// 封装防抖函数(args:1->函数名,2->等待时间,默认1.5s)
export const debounce=function(fn, wait) {
  var timer = null;
  return function () {
      var context = this
      var args = arguments
      if (timer) {
          clearTimeout(timer);
          timer = null;
      }
      timer = setTimeout(function () {
          fn.apply(context, args)
      }, wait)
  }
}
// 节流函数
export const throttle=function(func, wait) {
  // 设置默认值
  if (wait == null || wait == undefined) {
    wait = 1000
  }
 // 
  let _lastTime = null // 初始化上次点击的时间
  let _nowTime = + new Date() // 获得当前时间
  if (_nowTime - _lastTime > wait || !_lastTime) {
    // fn.apply(this, arguments)   //将this和参数传给原函数
    func(this,e)    //上方法不可行的解决办法 改变this和e
    _lastTime = _nowTime // 保存这次点击的时间
  }
  // 返回新的函数
  return
}